package com.crm.CLdriving.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.crm.CLdriving.common.BaseResponse;
import com.crm.CLdriving.common.PageResponse;
import com.crm.CLdriving.dto.PageReq.PageNumber;
import com.crm.CLdriving.dto.resp.CoachSelectAllRespDto;
import com.crm.CLdriving.vo.NewsCondition;
import com.crm.CLdriving.po.NewsPO;
import org.springframework.cache.annotation.CacheEvict;

import java.util.List;

public interface NewsService extends IService<NewsPO> {

    /**
     * 查询全部信息
     * @param pageNumber
     * @return
     */
    PageResponse<List<NewsPO>> selectAll(PageNumber pageNumber);

    /**
     * 分页查询
     *
     * @param vo
     * @return
     */
    List<NewsPO> findByCondition(Page<NewsPO> page, NewsCondition vo);


    /**
     * 首页轮播
     *
     * @return
     */
    List<NewsPO> sliderList();

    /**
     * 站长推荐
     *
     * @param pageSize
     * @return
     */
    List<NewsPO> recommendedList(int pageSize);

    /**
     * 最近文章
     *
     * @param pageSize
     * @return
     */

    List<NewsPO> recentList(int pageSize);

    /**
     * 随机文章
     *
     * @param pageSize
     * @return
     */
    List<NewsPO> randomList(int pageSize);

    /**
     * 热门文章
     *
     * @param pageSize
     * @return
     */
    List<NewsPO> hotList(int pageSize);

    /**
     * 根据id获取文章
     *
     * @param id
     * @return
     */
    NewsPO selectById(Integer id);

    /**
     * 插入
     *
     * @return
     */
    @CacheEvict(value = "article", allEntries = true)
    BaseResponse<?> insertArticle(NewsPO newsPO);

    /**
     * 批量删除文章
     *
     * @param ids
     * @return
     */
    int deleteBatch(Integer[] ids);

}
